package com.climber.android.commonres.widget

import android.content.Context
import android.text.TextUtils
import android.util.AttributeSet
import android.view.View
import android.widget.LinearLayout
import android.widget.TextView
import com.climber.android.commonres.R

/**
 * ━━━━━━神兽保佑━━━━━━
 * 　　　┏┓　　　┏┓
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　　　　　┃
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　┃
 * 　　┃　　　　　　　┃
 * 　　┃　　　┻　　　┃
 * 　　┃　　　　　　　┃
 * 　　┗━┓　　　┏━┛
 * 　　　　┃　　　┃
 * 　　　　┃　　　┃
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ━━━━━━代码无bug━━━━━━
 * @author Mikes
 * *
 * @date 2017-8-31
 */

class CommonInlineItemEmptyViewWithButton : LinearLayout {
    private var v_empty_title: TextView? = null
    private var v_empty_body: TextView? = null
    private var v_empty_button: TextView? = null

    constructor(context: Context) : super(context) {
        init()
    }

    constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
        init()
    }

    constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
        init()
    }

    private fun init() {
        View.inflate(context, R.layout.com_view_inline_item_empty_with_button, this)

        v_empty_title = findViewById<View>(R.id.v_empty_title) as TextView
        v_empty_body = findViewById<View>(R.id.v_empty_body) as TextView
        v_empty_button = findViewById<View>(R.id.v_empty_button) as TextView

        updateData()
    }

    private fun updateData() {
        configure("", "")
    }

    fun configure(title: String?, body: String? = null, btnLabel: String? = null, listener: (()->Unit)? = null) {
        if(TextUtils.isEmpty(title)){
            v_empty_title?.visibility = View.INVISIBLE
            v_empty_title?.text = title
        } else{
            v_empty_title?.visibility = View.VISIBLE
            v_empty_title?.text = title
        }

        if (TextUtils.isEmpty(body)) {
            v_empty_body?.visibility = View.INVISIBLE
        } else {
            v_empty_body?.visibility = View.VISIBLE
            v_empty_body?.text = body
        }

        if (btnLabel != null) {
            v_empty_button?.text = btnLabel
            v_empty_button?.visibility = View.VISIBLE
        } else {
            v_empty_button?.visibility = View.INVISIBLE
        }

        if (listener != null) {
            v_empty_button?.setOnClickListener {
                listener()
            }
        }
    }
}